<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <script>
            /* 
            思路：先根据每个数组的第一项进行排序。
            定义temp临时数组，如果当前temp[1]大于了nums[0]，就合并。但是需要继续比较temp[1]和num[1]
            再进行合并

            注意，最后一定位多出一个num，及intervals最后一项。
        [[1,2],[3,4],[5,6]] 不能和最后一项合并，最后多一个[5,6]
        [[1,2],[3,4],[4,5]] 可以和最后一项合并，但是并没有直接推入 多了[3,5] 
            
            */
            var merge = function (intervals) {
                if (intervals.length == 1) {
                    return intervals
                }
                intervals.sort((a, b) => a[0] - b[0])
                let temp = intervals[0]
                let result = []
                for (let i = 1; i < intervals.length; i++) {
                    let num = intervals[i]
                    if (temp[1] >= num[0]) {
                        temp[1] = Math.max(temp[1], num[1])
                    } else {
                        result.push(temp)
                        temp = num
                    }
                }
                result.push(temp)
                return result
            }
        </script>
    </body>
</html>
